For each..next
La sentencia de control for each..next crea un bucle que ejecuta una o varias sentencias para cada valor en una lista separada por comas. Las sentencias que están dentro del bucle, entre for y next se ejecutarán con cada valor de la lista.
Sintaxis:
La sintaxis especial hace posible generar listas con los nombres de archivo y directorio en el directorio actual.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumentos:
Argumento | Descripción |
---|---|
var | Es un nombre de variable de script que adquirirá un nuevo valor de lista para cada ejecución del bucle. Si se especifica var después de next deberá tener el mismo nombre de variable que el encontrado después del for each correspondiente. |
El valor de la variable var puede ser modificado por sentencias dentro del bucle, pero no es una buena práctica de programación.
Si se encuentra una cláusula exit for dentro del bucle, la ejecución del script será transferida a la primera sentencia tras la cláusula next que indica el final del bucle. Una cláusula exit for puede hacerse condicional mediante el uso opcional de un sufijo when o unless.
Sintaxis:
list := item { , item }
item := constant | (expression) | filelist (mask) | dirlist (mask) | fieldvaluelist (fieldname)
Argumento | Descripción |
---|---|
constant | Es cualquier número o cadena. Obsérvese que una cadena introducida directamente en el script debe ir entre comillas simples. Una cadena sin entrecomillado simple se interpretará como una variable y entonces se utilizará el valor de dicha variable. Los números no tienen que ir entre comillas simples. |
expression | Es una expresión cualquiera. |
mask |
Es una máscara de nombre de archivo o de carpeta que puede incluir cualquier carácter válido de nombre de archivo, así como los caracteres comodín estándar * y ?. |
condition | Es una expresión lógica que se evalúa como True o False. |
statements | Es cualquier grupo de una o varias sentencias de script de QlikView. |
filelist mask |
Esta sintaxis produce una lista de todos los archivos incluidos en el directorio actual, separados por coma, que coincidan con la máscara de nombre de archivo. |
dirlist mask |
Esta sintaxis produce una lista con todas las carpetas de la carpeta actual (separadas por comas) que coincidan con la máscara de nombre de archivo. |
fieldvaluelist mask | Esta sintaxis se repite a lo largo de los valores de un campo ya cargado en QlikView. |
Ejemplo 1: Cargar una lista de archivos
Ejemplo 2: Crear una lista de archivos en el disco
Este ejemplo carga una lista de todos los campos QlikView relacionados en una carpeta.
Ejemplo 3: Se repite a lo largo de los valores de un campo
Este ejemplo se repite a lo largo de la lista de valores cargados de FIELD y genera un campo nuevo, NEWFIELD. Para cada valor de FIELD, se crearán dos registros de NEWFIELD.
La tabla resultante tiene el siguiente aspecto:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |